// default package
// Generated 28 Jul, 2014 8:04:07 PM by Hibernate Tools 3.4.0.CR1
package com.galaxy.bean;

import java.math.BigDecimal;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.UniqueConstraint;

/**
 * SalesRecurringProfile generated by hbm2java
 */
@Entity
@Table(name = "sales_recurring_profile", catalog = "magento", uniqueConstraints = @UniqueConstraint(columnNames = "internal_reference_id"))
public class SalesRecurringProfile implements java.io.Serializable {

	private Integer profileId;
	private CustomerEntity customerEntity;
	private CoreStore coreStore;
	private String state;
	private String methodCode;
	private Date createdAt;
	private Date updatedAt;
	private String referenceId;
	private String subscriberName;
	private Date startDatetime;
	private String internalReferenceId;
	private String scheduleDescription;
	private Short suspensionThreshold;
	private short billFailedLater;
	private String periodUnit;
	private Short periodFrequency;
	private Short periodMaxCycles;
	private BigDecimal billingAmount;
	private String trialPeriodUnit;
	private Short trialPeriodFrequency;
	private Short trialPeriodMaxCycles;
	private String trialBillingAmount;
	private String currencyCode;
	private BigDecimal shippingAmount;
	private BigDecimal taxAmount;
	private BigDecimal initAmount;
	private short initMayFail;
	private String orderInfo;
	private String orderItemInfo;
	private String billingAddressInfo;
	private String shippingAddressInfo;
	private String profileVendorInfo;
	private String additionalInfo;
	private Set salesRecurringProfileOrders = new HashSet(0);

	public SalesRecurringProfile() {
	}

	public SalesRecurringProfile(String state, String methodCode,
			Date createdAt, Date startDatetime, String internalReferenceId,
			String scheduleDescription, short billFailedLater,
			String periodUnit, BigDecimal billingAmount, String currencyCode,
			short initMayFail, String orderInfo, String orderItemInfo,
			String billingAddressInfo) {
		this.state = state;
		this.methodCode = methodCode;
		this.createdAt = createdAt;
		this.startDatetime = startDatetime;
		this.internalReferenceId = internalReferenceId;
		this.scheduleDescription = scheduleDescription;
		this.billFailedLater = billFailedLater;
		this.periodUnit = periodUnit;
		this.billingAmount = billingAmount;
		this.currencyCode = currencyCode;
		this.initMayFail = initMayFail;
		this.orderInfo = orderInfo;
		this.orderItemInfo = orderItemInfo;
		this.billingAddressInfo = billingAddressInfo;
	}

	public SalesRecurringProfile(CustomerEntity customerEntity,
			CoreStore coreStore, String state, String methodCode,
			Date createdAt, Date updatedAt, String referenceId,
			String subscriberName, Date startDatetime,
			String internalReferenceId, String scheduleDescription,
			Short suspensionThreshold, short billFailedLater,
			String periodUnit, Short periodFrequency, Short periodMaxCycles,
			BigDecimal billingAmount, String trialPeriodUnit,
			Short trialPeriodFrequency, Short trialPeriodMaxCycles,
			String trialBillingAmount, String currencyCode,
			BigDecimal shippingAmount, BigDecimal taxAmount,
			BigDecimal initAmount, short initMayFail, String orderInfo,
			String orderItemInfo, String billingAddressInfo,
			String shippingAddressInfo, String profileVendorInfo,
			String additionalInfo, Set salesRecurringProfileOrders) {
		this.customerEntity = customerEntity;
		this.coreStore = coreStore;
		this.state = state;
		this.methodCode = methodCode;
		this.createdAt = createdAt;
		this.updatedAt = updatedAt;
		this.referenceId = referenceId;
		this.subscriberName = subscriberName;
		this.startDatetime = startDatetime;
		this.internalReferenceId = internalReferenceId;
		this.scheduleDescription = scheduleDescription;
		this.suspensionThreshold = suspensionThreshold;
		this.billFailedLater = billFailedLater;
		this.periodUnit = periodUnit;
		this.periodFrequency = periodFrequency;
		this.periodMaxCycles = periodMaxCycles;
		this.billingAmount = billingAmount;
		this.trialPeriodUnit = trialPeriodUnit;
		this.trialPeriodFrequency = trialPeriodFrequency;
		this.trialPeriodMaxCycles = trialPeriodMaxCycles;
		this.trialBillingAmount = trialBillingAmount;
		this.currencyCode = currencyCode;
		this.shippingAmount = shippingAmount;
		this.taxAmount = taxAmount;
		this.initAmount = initAmount;
		this.initMayFail = initMayFail;
		this.orderInfo = orderInfo;
		this.orderItemInfo = orderItemInfo;
		this.billingAddressInfo = billingAddressInfo;
		this.shippingAddressInfo = shippingAddressInfo;
		this.profileVendorInfo = profileVendorInfo;
		this.additionalInfo = additionalInfo;
		this.salesRecurringProfileOrders = salesRecurringProfileOrders;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "profile_id", unique = true, nullable = false)
	public Integer getProfileId() {
		return this.profileId;
	}

	public void setProfileId(Integer profileId) {
		this.profileId = profileId;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "customer_id")
	public CustomerEntity getCustomerEntity() {
		return this.customerEntity;
	}

	public void setCustomerEntity(CustomerEntity customerEntity) {
		this.customerEntity = customerEntity;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "store_id")
	public CoreStore getCoreStore() {
		return this.coreStore;
	}

	public void setCoreStore(CoreStore coreStore) {
		this.coreStore = coreStore;
	}

	@Column(name = "state", nullable = false, length = 20)
	public String getState() {
		return this.state;
	}

	public void setState(String state) {
		this.state = state;
	}

	@Column(name = "method_code", nullable = false, length = 32)
	public String getMethodCode() {
		return this.methodCode;
	}

	public void setMethodCode(String methodCode) {
		this.methodCode = methodCode;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "created_at", nullable = false, length = 19)
	public Date getCreatedAt() {
		return this.createdAt;
	}

	public void setCreatedAt(Date createdAt) {
		this.createdAt = createdAt;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "updated_at", length = 19)
	public Date getUpdatedAt() {
		return this.updatedAt;
	}

	public void setUpdatedAt(Date updatedAt) {
		this.updatedAt = updatedAt;
	}

	@Column(name = "reference_id", length = 32)
	public String getReferenceId() {
		return this.referenceId;
	}

	public void setReferenceId(String referenceId) {
		this.referenceId = referenceId;
	}

	@Column(name = "subscriber_name", length = 150)
	public String getSubscriberName() {
		return this.subscriberName;
	}

	public void setSubscriberName(String subscriberName) {
		this.subscriberName = subscriberName;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "start_datetime", nullable = false, length = 19)
	public Date getStartDatetime() {
		return this.startDatetime;
	}

	public void setStartDatetime(Date startDatetime) {
		this.startDatetime = startDatetime;
	}

	@Column(name = "internal_reference_id", unique = true, nullable = false, length = 42)
	public String getInternalReferenceId() {
		return this.internalReferenceId;
	}

	public void setInternalReferenceId(String internalReferenceId) {
		this.internalReferenceId = internalReferenceId;
	}

	@Column(name = "schedule_description", nullable = false)
	public String getScheduleDescription() {
		return this.scheduleDescription;
	}

	public void setScheduleDescription(String scheduleDescription) {
		this.scheduleDescription = scheduleDescription;
	}

	@Column(name = "suspension_threshold")
	public Short getSuspensionThreshold() {
		return this.suspensionThreshold;
	}

	public void setSuspensionThreshold(Short suspensionThreshold) {
		this.suspensionThreshold = suspensionThreshold;
	}

	@Column(name = "bill_failed_later", nullable = false)
	public short getBillFailedLater() {
		return this.billFailedLater;
	}

	public void setBillFailedLater(short billFailedLater) {
		this.billFailedLater = billFailedLater;
	}

	@Column(name = "period_unit", nullable = false, length = 20)
	public String getPeriodUnit() {
		return this.periodUnit;
	}

	public void setPeriodUnit(String periodUnit) {
		this.periodUnit = periodUnit;
	}

	@Column(name = "period_frequency")
	public Short getPeriodFrequency() {
		return this.periodFrequency;
	}

	public void setPeriodFrequency(Short periodFrequency) {
		this.periodFrequency = periodFrequency;
	}

	@Column(name = "period_max_cycles")
	public Short getPeriodMaxCycles() {
		return this.periodMaxCycles;
	}

	public void setPeriodMaxCycles(Short periodMaxCycles) {
		this.periodMaxCycles = periodMaxCycles;
	}

	@Column(name = "billing_amount", nullable = false, precision = 12, scale = 4)
	public BigDecimal getBillingAmount() {
		return this.billingAmount;
	}

	public void setBillingAmount(BigDecimal billingAmount) {
		this.billingAmount = billingAmount;
	}

	@Column(name = "trial_period_unit", length = 20)
	public String getTrialPeriodUnit() {
		return this.trialPeriodUnit;
	}

	public void setTrialPeriodUnit(String trialPeriodUnit) {
		this.trialPeriodUnit = trialPeriodUnit;
	}

	@Column(name = "trial_period_frequency")
	public Short getTrialPeriodFrequency() {
		return this.trialPeriodFrequency;
	}

	public void setTrialPeriodFrequency(Short trialPeriodFrequency) {
		this.trialPeriodFrequency = trialPeriodFrequency;
	}

	@Column(name = "trial_period_max_cycles")
	public Short getTrialPeriodMaxCycles() {
		return this.trialPeriodMaxCycles;
	}

	public void setTrialPeriodMaxCycles(Short trialPeriodMaxCycles) {
		this.trialPeriodMaxCycles = trialPeriodMaxCycles;
	}

	@Column(name = "trial_billing_amount", length = 65535)
	public String getTrialBillingAmount() {
		return this.trialBillingAmount;
	}

	public void setTrialBillingAmount(String trialBillingAmount) {
		this.trialBillingAmount = trialBillingAmount;
	}

	@Column(name = "currency_code", nullable = false, length = 3)
	public String getCurrencyCode() {
		return this.currencyCode;
	}

	public void setCurrencyCode(String currencyCode) {
		this.currencyCode = currencyCode;
	}

	@Column(name = "shipping_amount", precision = 12, scale = 4)
	public BigDecimal getShippingAmount() {
		return this.shippingAmount;
	}

	public void setShippingAmount(BigDecimal shippingAmount) {
		this.shippingAmount = shippingAmount;
	}

	@Column(name = "tax_amount", precision = 12, scale = 4)
	public BigDecimal getTaxAmount() {
		return this.taxAmount;
	}

	public void setTaxAmount(BigDecimal taxAmount) {
		this.taxAmount = taxAmount;
	}

	@Column(name = "init_amount", precision = 12, scale = 4)
	public BigDecimal getInitAmount() {
		return this.initAmount;
	}

	public void setInitAmount(BigDecimal initAmount) {
		this.initAmount = initAmount;
	}

	@Column(name = "init_may_fail", nullable = false)
	public short getInitMayFail() {
		return this.initMayFail;
	}

	public void setInitMayFail(short initMayFail) {
		this.initMayFail = initMayFail;
	}

	@Column(name = "order_info", nullable = false, length = 65535)
	public String getOrderInfo() {
		return this.orderInfo;
	}

	public void setOrderInfo(String orderInfo) {
		this.orderInfo = orderInfo;
	}

	@Column(name = "order_item_info", nullable = false, length = 65535)
	public String getOrderItemInfo() {
		return this.orderItemInfo;
	}

	public void setOrderItemInfo(String orderItemInfo) {
		this.orderItemInfo = orderItemInfo;
	}

	@Column(name = "billing_address_info", nullable = false, length = 65535)
	public String getBillingAddressInfo() {
		return this.billingAddressInfo;
	}

	public void setBillingAddressInfo(String billingAddressInfo) {
		this.billingAddressInfo = billingAddressInfo;
	}

	@Column(name = "shipping_address_info", length = 65535)
	public String getShippingAddressInfo() {
		return this.shippingAddressInfo;
	}

	public void setShippingAddressInfo(String shippingAddressInfo) {
		this.shippingAddressInfo = shippingAddressInfo;
	}

	@Column(name = "profile_vendor_info", length = 65535)
	public String getProfileVendorInfo() {
		return this.profileVendorInfo;
	}

	public void setProfileVendorInfo(String profileVendorInfo) {
		this.profileVendorInfo = profileVendorInfo;
	}

	@Column(name = "additional_info", length = 65535)
	public String getAdditionalInfo() {
		return this.additionalInfo;
	}

	public void setAdditionalInfo(String additionalInfo) {
		this.additionalInfo = additionalInfo;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "salesRecurringProfile")
	public Set getSalesRecurringProfileOrders() {
		return this.salesRecurringProfileOrders;
	}

	public void setSalesRecurringProfileOrders(Set salesRecurringProfileOrders) {
		this.salesRecurringProfileOrders = salesRecurringProfileOrders;
	}

}
